package cn.wangdian.erp.sdk.api.purchasereturn;

import cn.wangdian.erp.sdk.Pager;
import cn.wangdian.erp.sdk.WdtErpException;
import cn.wangdian.erp.sdk.api.purchasereturn.dto.PurchaseReturnCancelBatchResponse;
import cn.wangdian.erp.sdk.api.purchasereturn.dto.PurchaseReturnCancelResponse;
import cn.wangdian.erp.sdk.api.purchasereturn.dto.PurchaseReturnCreateOrderRequest;
import cn.wangdian.erp.sdk.api.purchasereturn.dto.PurchaseReturnCreateOrderResponse;
import cn.wangdian.erp.sdk.api.purchasereturn.dto.PurchaseReturnPendingResponse;
import cn.wangdian.erp.sdk.api.purchasereturn.dto.PurchaseReturnQueryRequest;
import cn.wangdian.erp.sdk.api.purchasereturn.dto.PurchaseReturnQueryResponse;
import cn.wangdian.erp.sdk.impl.Api;
import java.util.List;

public interface PurchaseReturnAPI
{
	@Api(value = "purchase.PurchaseReturn.createOrder")
	PurchaseReturnCreateOrderResponse createOrder(PurchaseReturnCreateOrderRequest.PurchaseReturnOrderInfo orderInfo,
			List<PurchaseReturnCreateOrderRequest.PurchaseReturnDetail> detailList, boolean isSubmit);

	@Api(value = "purchase.PurchaseReturn.queryWithDetail", paged = true)
	PurchaseReturnQueryResponse search(PurchaseReturnQueryRequest request, Pager pager) throws WdtErpException;

	@Api(value = "purchase.PurchaseReturn.cancelOrder")
	PurchaseReturnCancelResponse cancel(String returnNo) throws WdtErpException;

	@Api(value = "purchase.PurchaseReturn.batchCancelOrder")
	PurchaseReturnCancelBatchResponse cancelBatch(List<String> returnNos) throws WdtErpException;

	@Api(value = "purchase.PurchaseReturn.pending")
	PurchaseReturnPendingResponse pending(List<String> purchaseReturnNoList) throws WdtErpException;
}
